﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Lavanderia.BL;
using Lavanderia.Entities;
using Microsoft.Practices.Unity;

namespace Lavanderia.UI
{
    public partial class FrmMttoVenta : Form
    {
        [Dependency]
        public IVentaBL ventaBL { get; set; }

        [Dependency]
        public IProductoBL prodBL { get; set; }

        [Dependency]
        public IClienteBL clienteBL { get; set; }

        [Dependency]
        public IUsuarioMenuBL usuMenuBL { get; set; }

        [Dependency]
        public IClienteJuridicoBL cliJuriBL { get; set; }

        [Dependency]
        public IClienteNaturalBL cliNatBL { get; set; }

        public FrmMttoVenta()
        {
            InitializeComponent();
            this.BuilUp();
        }

        bool isNew, isEmpr;
        int IdCliente, comp_aux;

        List<PRODUCTO> _listProductoPorAsignar;


        public USUARIO currentUsuarioVenta { get; set; }

        public void NuevaVenta()
        {
            isNew = true;
            vENTABindingSource.AddNew();
            acuentaTextBox.Text = "0.00";
        }

        public VENTA _venta { get; set; }

        public void EditarVenta()
        {
            vENTABindingSource.DataSource = _venta;
           
            saldoLabel1.Text = Convert.ToString(_venta.Saldo);
            //nComprobanteTextBox.Text = Convert.ToString(_venta.NComprobante);
            //cbxTComprobante.DataSource = (from c in tipCompBL.GetAllFromTipoComprobante()
            //                              where c.Id.Equals(_venta.IdTipoComprobante)
            //                              select c).ToList();

            var cliente = (from c in clienteBL.GetAllFromCliente()
                           where c.CodCli == _venta.IdCliente
                           select c).SingleOrDefault();
            if (cliente != null)
            {
                txtDni.Text = cliente.CLIENTE_JURIDICO.Ruc;
                lblCliente.Text = cliente.CLIENTE_JURIDICO.RazonSocial;
            }
            
        }

        private void FrmMttoVenta_Load(object sender, EventArgs e)
        {
            CargaProductos();

            _listProductoPorAsignar = new List<PRODUCTO>();
            acuentaTextBox.Text = "0.00";

            //isNew = true;
            //vENTABindingSource.AddNew();
            //acuentaTextBox.Text = "0.00";
        }

         //cargamos los productos
        public void CargaProductos()
        {
            pRODUCTOBindingSource.DataSource = prodBL.GetAllFromProductos();
        }

        //OBTENER AL CLIENTE MEDIANTE BOTON EXTENDER
        public void CargaCliente()
        {
            FrmCliente frm = new FrmCliente();
            frm.Extend();
            frm.ShowDialog();

            if (frm.currentClienteJuridico != null)
            {
                var nuevoClienteJuri = cliJuriBL.GetAllFromClienteJuridicoByRuc(frm.currentClienteJuridico.Ruc);
                var venta = vENTABindingSource.Current as VENTA;
                venta.IdCliente = nuevoClienteJuri.ClienteJuridicoId;
                txtDni.Text = nuevoClienteJuri.Ruc; 
                lblCliente.Text = nuevoClienteJuri.RazonSocial;
                lblDireccion.Text = nuevoClienteJuri.DireccionEncargado;
                lblEncargado.Text = nuevoClienteJuri.DniEncargado + ' ' + '-' + ' ' + nuevoClienteJuri.Encargado;
                lblEmpresa.Text = Convert.ToString('-');
                lblHotel.Text = Convert.ToString('-');
                vENTABindingSource.ResetBindings(true);
            }
            else if (frm.currentClienteNtural != null)
            {
                var nuevoClienteNat = cliNatBL.GetAllFromClienteNaturalByDni(frm.currentClienteNtural.Dni);
                var venta = vENTABindingSource.Current as VENTA;
                venta.IdCliente = nuevoClienteNat.ClienteNaturalId;
                txtDni.Text = nuevoClienteNat.Dni;
                lblCliente.Text = nuevoClienteNat.NombreCompleto;
                lblDireccion.Text = nuevoClienteNat.CLIENTE.Direccion;
                lblEncargado.Text = Convert.ToString('-');
                lblEmpresa.Text = nuevoClienteNat.EMPRESA.RazonSocial;
                lblHotel.Text = nuevoClienteNat.HOTEL.NombreHotel;

                if (nuevoClienteNat.IdEmpresa != 1 && nuevoClienteNat.IdHotel != 1)
                {
                    isEmpr = true;
                    GeneraNumComprobante();
                }
                else
                {
                    isEmpr = false;
                    GeneraNumComprobante();
                }

                vENTABindingSource.ResetBindings(true);
            }
        }

        private void btnBusCliente_Click(object sender, EventArgs e)
        {
            CargaCliente();
        }

        //OBTENER AL CLIENTE DIRECAMENTE COLOCANDO EL DNI
        public void VerificarExistenciaCliente()
        {
            var clienteJuri = cliJuriBL.GetAllFromClienteJuridicoByRuc(txtDni.Text);
            var clienteNat = cliNatBL.GetAllFromClienteNaturalByDni(txtDni.Text);
            var venta = vENTABindingSource.Current as VENTA;
            if (txtDni.Text.Length == 8 || txtDni.Text.Length == 11)
            {
                if (clienteJuri != null)
                {
                    venta.IdCliente = clienteJuri.ClienteJuridicoId;
                    lblCliente.Text = clienteJuri.RazonSocial;
                    lblDireccion.Text = clienteJuri.DireccionEncargado;
                    lblEncargado.Text = clienteJuri.DniEncargado + ' ' +'-'+' ' + clienteJuri.Encargado;
                    lblEmpresa.Text = Convert.ToString('-');
                    lblHotel.Text = Convert.ToString('-');
                    vENTABindingSource.ResetBindings(true);
                }
                else if (clienteNat != null)
                {
                    venta.IdCliente = clienteNat.ClienteNaturalId;
                    lblCliente.Text = clienteNat.NombreCompleto;
                    lblDireccion.Text = clienteNat.CLIENTE.Direccion;
                    lblEncargado.Text = Convert.ToString('-');
                    lblEmpresa.Text = clienteNat.EMPRESA.RazonSocial;
                    lblHotel.Text = clienteNat.HOTEL.NombreHotel;

                    if (clienteNat.IdEmpresa != 1 && clienteNat.IdHotel != 1)
                    {
                        isEmpr = true;
                        GeneraNumComprobante();
                    }
                    else
                    {
                        isEmpr = false;
                        GeneraNumComprobante();
                    }

                    vENTABindingSource.ResetBindings(true);
                }
                else
                {
                    var rpt = MessageBox.Show(this, "Cliente NO Existente ¿Desea Crear un Cliente?", "Mensaje", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (rpt == DialogResult.Yes)
                    {
                        FrmMttoCliente frm = new FrmMttoCliente();
                        frm.ShowDialog();
                    }
                }
            }
            else
            {
                MessageBox.Show("Longitud Ruc o Dni Incorrectos", "Mensaje", MessageBoxButtons.OK);
            }
        }

        private void txtDni_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                VerificarExistenciaCliente();
            }
        }

        private void txtDni_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyCode == Keys.Tab)
            {
                VerificarExistenciaCliente();
            }
        }

        //GENERAR NRO COMPROBANTE SEGUN EL TIPO DE CLIENTE
        public void GeneraNumComprobante()
        {
            if (isEmpr == true)
            {
                //comprobantes para clientes con empresa-hotel
                var ultNumComp = (from c in ventaBL.GetAllFromVentas()
                                  orderby c.NCompEmp
                                  select c).Last();

                var nuevoNumComp = ultNumComp.NCompEmp + 1;
                nComprobanteTextBox.Text = Convert.ToString(nuevoNumComp);

                //sin empresa-hotel comprobante anterior sin sumar
                var ultComp = (from c in ventaBL.GetAllFromVentas()
                               orderby c.NCompCli
                               select c).Last();
                comp_aux = ultComp.NCompCli;
            }
            else if (isEmpr == false)
            {
                //comprobantes para clientes normales
                var ultNumComp = (from c in ventaBL.GetAllFromVentas()
                                  orderby c.NCompCli
                                  select c).Last();

                var nuevoNumComp = ultNumComp.NCompCli + 1;
                nComprobanteTextBox.Text = Convert.ToString(nuevoNumComp);

                //con empresa-hotel comprobante anterior sin sumar
                //sin empresa-hotel comprobante anterior sin sumar
                var ultComp = (from c in ventaBL.GetAllFromVentas()
                               orderby c.NCompEmp
                               select c).Last();
                comp_aux = ultComp.NCompEmp;
            }
        }


        //METODO CALCULAR TOTAL
        public void calcularTotal()
        {
            var _venta = vENTABindingSource.Current as VENTA;
            if (_venta != null)
            {
                totalLabel1.Text = Convert.ToString(_venta.DETALLE_VENTA.Sum(dp => dp.Importe));
                _venta.Total = _venta.DETALLE_VENTA.Sum(dp => dp.Importe);
                vENTABindingSource.ResetBindings(true);
            }
        }

        public void agregarDetalle()
        {
            var producto = pRODUCTOBindingSource.Current as PRODUCTO;
            var currentVenta = vENTABindingSource.Current as VENTA;

            if (producto != null)
            {
                var detalle = new DETALLE_VENTA
                    {
                        IdVenta = currentVenta.Id,
                        IdProducto = producto.Codigo,
                        PRODUCTO = producto,
                        VENTA = currentVenta,
                        Cantidad = 1,
                        Precio = producto.PVenta
                    };

                    var existe = currentVenta.DETALLE_VENTA.Where(d => d.PRODUCTO.Codigo.Equals(producto.Codigo)).SingleOrDefault();

                    if (existe == null)
                    {
                        decimal impo = detalle.Cantidad * detalle.Precio;
                        detalle.Importe = impo;
                        detalle.Fecha = fechaDateTimePicker.Value;
                        currentVenta.DETALLE_VENTA.Add(detalle);
                        currentVenta.Total = currentVenta.DETALLE_VENTA.Sum(dp => dp.Importe);
                    }
                    else
                    {
                        MessageBox.Show(detalle.PRODUCTO + " ya se encuentra agregado", "Mensaje", MessageBoxButtons.OK);
                    }

                    _listProductoPorAsignar.Add(producto);
                    vENTABindingSource.ResetBindings(true);
                    dETALLE_VENTABindingSource.ResetBindings(true);
            }
        }
        //BOTON AGREGAR PRODUCTOS
        private void btnAdd_Click(object sender, EventArgs e)
        {
            agregarDetalle();

            //CALCUALNDO ACUENTA
            var a = Convert.ToDecimal(totalLabel1.Text);
            if (acuentaTextBox.Text != "")
            {
                if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                {
                    saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                    //acuentaTextBox.Text = "0.00";
                }
                else
                {
                    MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //acuentaTextBox.Text = "0.00";
                }
            }
            else
            {
                saldoLabel1.Text = totalLabel1.Text;
                //acuentaTextBox.Text = "0.00";
            }
        }

        //BOTON QUITAR PRODUCTOS
        private void btnDelete_Click(object sender, EventArgs e)
        {
            var detalleVenta = dETALLE_VENTABindingSource.Current as DETALLE_VENTA;
            var venta = vENTABindingSource.Current as VENTA;

            if (detalleVenta != null)
            {
                var rpt = MessageBox.Show(this, string.Format("¿Desea Quitar el Producto: {0} ?", detalleVenta.PRODUCTO), "Quitar Producto", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (rpt == DialogResult.Yes)
                {
                    dETALLE_VENTABindingSource.RemoveCurrent();
                    calcularTotal();
                }
                if (acuentaTextBox.Text != "")
                {
                    var a = Convert.ToDecimal(totalLabel1.Text);
                    if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                    {
                        saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                    }
                    else
                    {
                        MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        acuentaTextBox.Text = "0.00";
                    }
                }
            }
            else
            {
                MessageBox.Show("Debe selecionar un producto para poder Quitar");
            }
            vENTABindingSource.ResetBindings(true);
            dETALLE_VENTABindingSource.ResetBindings(true);

            acuentaTextBox.Text = "0.00";
            saldoLabel1.Text = totalLabel1.Text;
        }

        //Modificar la CANTIDAD y el IMPORTE
        private void dETALLE_VENTADataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex == 1)  //solo pa ver la posicion de la CANTIDAD  a cambiar
            {
                var detalle = dETALLE_VENTABindingSource.Current as DETALLE_VENTA;
                if (detalle != null)
                {
                    var producto = prodBL.GetAllProductoById(detalle.IdProducto);
                    if (detalle.Cantidad <= 0)  //para veificar si hay sufiente STOCK o no an puesto la cantidad necesaria
                    {
                        MessageBox.Show("La Cantidad debe ser mayor a 0", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        detalle.Cantidad = 1;
                        decimal impo = detalle.Cantidad * detalle.Precio;
                        detalle.Importe = impo;
                        calcularTotal();

                        //CALCUALNDO ACUENTA
                        var a = Convert.ToDecimal(totalLabel1.Text);
                        if (acuentaTextBox.Text != "")
                        {
                            if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                            {
                                saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                            }
                            else
                            {
                                MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                acuentaTextBox.Text = "0.00";
                            }
                        }
                        else
                        {
                            saldoLabel1.Text = totalLabel1.Text;
                        }
                    }
                    else
                    {
                        decimal impo = detalle.Cantidad * detalle.Precio;
                        detalle.Importe = impo;
                        calcularTotal();

                        //CALCUALNDO ACUENTA
                        var a = Convert.ToDecimal(totalLabel1.Text);
                        if (acuentaTextBox.Text != "")
                        {
                            if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                            {
                                saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                            }
                            else
                            {
                                MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                acuentaTextBox.Text = "0.00";
                            }
                        }
                        else
                        {
                            saldoLabel1.Text = totalLabel1.Text;
                        }
                    }
                }
            }
        }

        //validacion de ingreso de DATOS
        private void txtDni_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsNumber(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        private void acuentaTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsNumber(e.KeyChar) || Char.IsPunctuation(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
            }
        }

        //validar A CUENTA y el SALDO
        private void acuentaTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                var a = Convert.ToDecimal(totalLabel1.Text);
                if (acuentaTextBox.Text != "")
                {
                    if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                    {
                        saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                    }
                    else
                    {
                        MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        acuentaTextBox.Text = "0.00";
                    }
                }
            }
        }

        private void acuentaTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {

        }


        //GUARDANDO..... datos
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            var venta = vENTABindingSource.Current as VENTA;

            var msg = "ERROR";

            if (venta != null)
            {
                if (isNew == true)
                {
                    try
                    {
                        venta.Fecha = fechaDateTimePicker.Value;
                        venta.FechaEntrega = fechaEntregaDateTimePicker.Value;
                        venta.Saldo = Convert.ToDecimal(saldoLabel1.Text);
                        venta.Acuenta = Convert.ToDecimal(acuentaTextBox.Text);
                        if (isEmpr == true)
                        {
                            venta.NCompEmp = Convert.ToInt32(nComprobanteTextBox.Text);
                            venta.NCompCli = comp_aux;
                        }
                        else if (isEmpr == false)
                        {
                            venta.NCompCli = Convert.ToInt32(nComprobanteTextBox.Text);
                            venta.NCompEmp = comp_aux;
                        }
                        if (currentUsuarioVenta != null)
                        {
                            venta.IdTrabajador = currentUsuarioVenta.IdTrabajador;
                        }
                        else
                        {
                            venta.IdTrabajador = null;
                        }
                        ventaBL.AddVentas(venta);

                        MessageBox.Show("Registro Correcto", "Registro",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        msg = ex.Message;
                        MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                if (isNew == false)
                {
                    try
                    {
                        venta.Fecha = fechaDateTimePicker.Value;
                        venta.FechaEntrega = fechaEntregaDateTimePicker.Value;
                        venta.Saldo = Convert.ToDecimal(saldoLabel1.Text);
                        venta.Acuenta = Convert.ToDecimal(acuentaTextBox.Text);
                        if (isEmpr == true)
                        {
                            venta.NCompEmp = Convert.ToInt32(nComprobanteTextBox.Text);
                        }
                        else if (isEmpr == false)
                        {
                            venta.NCompCli = Convert.ToInt32(nComprobanteTextBox.Text);
                        }
                        if (currentUsuarioVenta != null)
                        {
                            venta.IdTrabajador = currentUsuarioVenta.IdTrabajador;
                        }
                        else
                        {
                            venta.IdTrabajador = null;
                        }
                        ventaBL.UpdateVentas(venta);

                        MessageBox.Show("Modificación Correcto", "Registro",
                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                    catch (Exception ex)
                    {
                        msg = ex.Message;
                        MessageBox.Show(msg, "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }


        private void acuentaTextBox_Leave(object sender, EventArgs e)
        {
            var a = Convert.ToDecimal(totalLabel1.Text);
            //var b = Convert.ToDecimal(acuentaTextBox.Text);
            if (acuentaTextBox.Text != "")
            {
                if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                {
                    saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                }
                else
                {
                    MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    acuentaTextBox.Text = "0.00";
                }
            }
            //else
            //    MessageBox.Show("Debe agregar productos para calcular su saldo", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void pRODUCTODataGridView_DoubleClick(object sender, EventArgs e)
        {
            agregarDetalle();

            //CALCUALNDO ACUENTA
            var a = Convert.ToDecimal(totalLabel1.Text);
            if (acuentaTextBox.Text != "")
            {
                if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                {
                    saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                    //acuentaTextBox.Text = "0.00";
                }
                else
                {
                    MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //acuentaTextBox.Text = "0.00";
                }
            }
            else
            {
                saldoLabel1.Text = totalLabel1.Text;
                //acuentaTextBox.Text = "0.00";
            }
        }

        private void pRODUCTODataGridView_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                agregarDetalle();

                //CALCUALNDO ACUENTA
                var a = Convert.ToDecimal(totalLabel1.Text);
                if (acuentaTextBox.Text != "")
                {
                    if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                    {
                        saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                        //acuentaTextBox.Text = "0.00";
                    }
                    else
                    {
                        MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //acuentaTextBox.Text = "0.00";
                    }
                }
                else
                {
                    saldoLabel1.Text = totalLabel1.Text;
                    //acuentaTextBox.Text = "0.00";
                }
            }
        }

        private void pRODUCTODataGridView_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyCode == Keys.Tab)
            {
                agregarDetalle();

                //CALCUALNDO ACUENTA
                var a = Convert.ToDecimal(totalLabel1.Text);
                if (acuentaTextBox.Text != "")
                {
                    if (a > 0 && Convert.ToDecimal(acuentaTextBox.Text) <= a)
                    {
                        saldoLabel1.Text = Convert.ToString(Convert.ToDecimal(totalLabel1.Text) - Convert.ToDecimal(acuentaTextBox.Text));
                        //acuentaTextBox.Text = "0.00";
                    }
                    else
                    {
                        MessageBox.Show("Debe verifique su Total", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        //acuentaTextBox.Text = "0.00";
                    }
                }
                else
                {
                    saldoLabel1.Text = totalLabel1.Text;
                    //acuentaTextBox.Text = "0.00";
                }
            }
        }

        private void rbtnPiezas_CheckedChanged(object sender, EventArgs e)
        {
            if (rbtnPiezas.Checked)
            {
                pRODUCTOBindingSource.DataSource = prodBL.GetAllFromProductos();
            }
            else if (rbtnPeso.Checked)
            {
                pRODUCTOBindingSource.DataSource = prodBL.GetAllFromProductosByPeso();
            }
        }
    }
}
